12.3 接口多态的综合案例
12.3.1 笔记本电脑
笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。
定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用。
12.3.2 案例分析
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
- USB接口,包含开启功能、关闭功能
- 笔记本类,包含运行功能、关机功能、使用USB设备功能
- 鼠标类,要实现USB接口,并具备点击的方法
- 键盘类,要实现USB接口,具备敲击的方法
12.3.3 案例实现
定义USB接口:
1 2 3 4
| interface USB { void open(); void close(); }
|
定义鼠标类:
1 2 3 4 5 6 7 8 9 10 11
| class Mouse implements USB { public void open() { System.out.println("鼠标开启,红灯闪一闪"); } public void close() { System.out.println("鼠标关闭,红灯熄灭"); } public void click(){ System.out.println("鼠标单击"); } }
|
定义键盘类:
1 2 3 4 5 6 7 8 9 10 11
| class KeyBoard implements USB { public void open() { System.out.println("键盘开启,绿灯闪一闪"); } public void close() { System.out.println("键盘关闭,绿灯熄灭"); } public void type(){ System.out.println("键盘打字"); } }
|
定义笔记本类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Laptop { public void run() { System.out.println("笔记本运行"); } public void useUSB(USB usb) { if (usb != null) { usb.open(); if(usb instanceof Mouse){ Mouse m = (Mouse)usb; m.click(); }else if (usb instanceof KeyBoard){ KeyBoard kb = (KeyBoard)usb; kb.type(); } usb.close(); } } public void shutDown() { System.out.println("笔记本关闭"); } }
|
测试类,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public class Test { public static void main(String[] args) { Laptop lt = new Laptop(); lt.run(); Usb u = new Mouse(); lt.useUSB(u); KeyBoard kb = new KeyBoard(); lt.useUSB(kb); lt.shutDown(); } }
|
本文标题:第二部分 第十二章 3.接口多态的综合案例
文章作者:foreverSFJ
发布时间:2019-08-20 10:11:19
最后更新:2019-08-20 10:11:19
原始链接:Notes/Java/Basic/Part02/12_3 接口多态的综合案例.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!